#include <iostream>
#include <ctime>
#include <vector>

using namespace std;

// 70. Climbing Stairs 记忆化搜索	动态规划
// 时间复杂度: O(n)  空间复杂度: O(n)
class Solution {
public:
    int climbStairs(int n) {
		// 数组初始化
		vector<int> memo(n + 1, -1);

		memo[0] = 1;
		memo[1] = 1;
		for(int i = 2; i <= n; i++)
			memo[i] = memo[i - 1] + memo[i - 2];
  		return memo[n]; 
    }
};
int main(){
	cout << Solution().climbStairs(10) << endl;

    return 0;
}
